/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BancoDeDados;

/**
 *
 * @author Igor
 */
public class UpdateDB implements Runnable {
    //Atributos
    private GerenciarOperacoes ger = new GerenciarOperacoes();
    
    //Construtores
    public UpdateDB(){
        this.ger.selectTabelas();
    }
    
    //Outros Metodos
    public void tabelaRosto(){
        String tabela = "ROSTO";
        
        //Cria tabela
        if(!this.ger.localizaTabelas(tabela)){
            this.ger.executaQuery("create table "+tabela+"("
                                 +"\nID_ROSTO numeric(18,0) not null,"
                                 +"\nFAIXA_ETARIA varchar(10),"
                                 +"\nETNIA varchar(10),"
                                 +"\nSEXO varchar(1)"
                                 +"\n);");
        }
        
        //Cria PK
        this.ger.selectConstraintNames(tabela);
        if(!this.ger.localizaConstraintNames("PK_"+tabela)){
            this.ger.criaPrimaryKey(tabela, "PK_"+tabela, "ID_ROSTO");
        }
    }
    
    public void tabelaExpressao(){
        String tabela = "EXPRESSAO";
        if(!this.ger.localizaTabelas(tabela)){
            this.ger.executaQuery("create table "+tabela+"("
                                 +"\nID_EXPRESSAO numeric(18,0) not null,"
                                 +"\nDESCRICAO varchar(10)"
                                 +"\n);");
        }
        
        //Cria PK
        this.ger.selectConstraintNames(tabela);
        if(!this.ger.localizaConstraintNames("PK_"+tabela)){
            this.ger.criaPrimaryKey(tabela, "PK_"+tabela, "ID_EXPRESSAO");
        }
    }
    
    public void tabelaImagem(){
        String tabela = "IMAGEM";
        if(!this.ger.localizaTabelas(tabela)){
            this.ger.executaQuery("create table "+tabela+"("
                                 +"\nID_ROSTO numeric(18,0) not null,"
                                 +"\nID_EXPRESSAO numeric(18,0) not null,"
                                 +"\nINTENSIDADE numeric(3,2) not null"
                                 +"\n);");
        }
        
        //Cria PK
        this.ger.selectConstraintNames(tabela);
        if(!this.ger.localizaConstraintNames("PK_"+tabela)){
            this.ger.criaPrimaryKey(tabela, "PK_"+tabela, "ID_ROSTO, ID_EXPRESSAO, INTENSIDADE");
        }
        
        //Cria FK
        this.ger.selectConstraintNames(tabela);
        if(!this.ger.localizaConstraintNames("FK_"+tabela+"_ROSTO")){
            this.ger.criaForeignKey(tabela, "FK_"+tabela+"_ROSTO", "ID_ROSTO", "ROSTO", "ID_ROSTO");
        }
        if(!this.ger.localizaConstraintNames("FK_"+tabela+"_EXPRESSAO")){
            this.ger.criaForeignKey(tabela, "FK_"+tabela+"_EXPRESSAO", "ID_EXPRESSAO", "EXPRESSAO", "ID_EXPRESSAO");
        }
    }

    @Override
    public void run() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
}
